package testcase;

import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;

import org.dom4j.DocumentException;
import org.junit.Assert;
import org.junit.Test;

import com.struts.Struts;
import com.struts.View;

public class StrutsTest
{

	@Test
	public void testLoginActionSuccess() throws ClassNotFoundException,
			NoSuchMethodException, SecurityException, InstantiationException,
			IllegalAccessException, IllegalArgumentException,
			InvocationTargetException, DocumentException, NoSuchFieldException {

		String actionName = "login";

		Map<String, String> params = new HashMap<String, String>();
		params.put("name", "test");
		params.put("password", "1234");

		View view = Struts.runAction(actionName, params);

		Assert.assertEquals("/jsp/homepage.jsp", view.getJsp());
		Assert.assertEquals("login successful",
				view.getParameters().get("message"));
	}

	@Test
	public void testLoginActionFailed() throws ClassNotFoundException,
			NoSuchMethodException, SecurityException, InstantiationException,
			IllegalAccessException, IllegalArgumentException,
			InvocationTargetException, DocumentException, NoSuchFieldException {
		String actionName = "login";
		Map<String, String> params = new HashMap<String, String>();
		params.put("name", "test");
		params.put("password", "123456"); // 密码和预设的不一致

		View view = Struts.runAction(actionName, params);

		Assert.assertEquals("/jsp/showLogin.jsp", view.getJsp());
		Assert.assertEquals("login failed,please check your user/pwd", view
				.getParameters().get("message"));
	}

}
